<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // Array.from("伪数组")   
        /* 从一个伪数组或可迭代对象创建一个新的，浅拷贝的数组实例。 */

        //Array.of()
        /* 方法创建一个具有可变数量参数的新数组实例，而不考虑参数的数量或类型。 */

        //ES5 创建数组
        // let arr = [1,2,3];
        // let arr = new Array(7,8);
        // console.log(arr);// [7, 8]
        // let arr = Array.of(7);
        // console.log(arr); //[7]

        //array.find()
        /* 方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。 */
        // let arr = [1, 2, 4, 5, 6, 7];
        // var res = arr.filter(item => item > 3);
        // console.log(res); // [4,5,6,7] 
        // var res=arr.find(item=>item>3);
        // console.log(res);// [4,5,6,7] 

        // array.findIndex()
        /* 返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。 */
        // let arr = ["张安", "李四", "王五"];
        // var res = arr.findIndex(item => item == "李四");
        // console.log(res); // 1


        // array.includes()
        /* 判断一个数组是否包含一个指定的值，根据情况，如果包含则返回 true，否则返回false
        注意：对象数组不能使用includes方法来检测。 */
        // let arr = ["张安", "李四", "王五"];
        // var res = arr.includes("李四11")
        // console.log(res); // false


        //array.flat()
        /* 按照一个可指定的深度递归遍历数组，并将所有元素与遍历到的子数组中的元素合并为一个新数组返回
        数组扁平化,默认参数为1 */
        // var arr = [1, 2, [3, [4, 5]]];
        // var res = arr.flat(2);
        // console.log(res); // [1, 2, 3, 4, 5]

        //ES5数组扁平化方法
        // var res = arr.toString();
        // console.log(res); //1,2,3,4,5
        // var newarr = res.split(",");
        // console.log(newarr); //['1', '2', '3', '4', '5']


        //array.at()
        /* 接收一个整数值并返回该索引的项目，允许正数和负数。负整数从数组中的最后一个项目开始倒数。 */
        // let arr = [1, 2, 3, 4, 5];
        // console.log(arr[2]); //3
        // console.log(arr[arr.length - 2]); //4
        // console.log(arr.at(2)); //3
        // console.log(arr.at(-2)); //4


        //array.fill() 
        /* 用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。 */
        let arr = [1, 2, 3, 4, 5];
        arr.fill(6);// [6, 6, 6, 6, 6]
        arr.fill("a", 2, 3); //左闭右开  [6, 6, 'a', 6, 6]
        console.log(arr);


        
        console.dir(Array);
    </script>
</body>

</html>